//Promise可以解决回调地狱，转为.then的链式调用,但是会形成链式地狱，
//async / await 是 ES8 (ECMAScript 2017）引入的新语法，用来简化 Promise 异步操作

//引入fs模块
import fs from 'fs'

//封装读取文件函数
const myReadFile = url => {
  return new Promise((resolve, reject) => {
    fs.readFile(url, 'utf-8', (err, dataStr) => {
      !err ? resolve(dataStr) : reject(err)
    })
  })
}

//封装整个读取过程
//函数必须用async修饰，每一个Promise对象之前用await修饰,让异步操作以同步的形式来写
//使用try，catch去捕获错误
async function readFiles() {
  try {
    const f1 = await myReadFile('./text/1.txt')
    console.log(f1)
    const f2 = await myReadFile('./text/2.txt')
    console.log(f2)
    const f3 = await myReadFile('./text/3.txt')
    console.log(f3)
    const f4 = await myReadFile('./text/4.txt')
    console.log(f4)
    const f5 = await myReadFile('./text/5.txt')
    console.log(f5)
  } catch (error) {
    console.log(error)
  }
}

readFiles()
